//1. 代理中的 this
// const target = {
//   thisValEqualsProxy(){
//     return this === proxy;
//   }
// }
// const proxy = new Proxy(target,{});
// console.log(target.thisValEqualsProxy());//false
// console.log(proxy.thisValEqualsProxy());//true
// 从直觉上讲，这样完全没有问题：调用代理上的任何方法，比如 proxy.outerMethod()，而这个
// 方法进而又会调用另一个方法，如 this.innerMethod()，实际上都会调用 proxy.innerMethod()。
// 多数情况下，这是符合预期的行为。可是，如果目标对象依赖于对象标识，那就可能碰到意料之外的
// 问题。

// const wm = new WeakMap();
// class User {
//   constructor(userId){
//     wm.set(this,userId)
//   }
//   set id(userId){
//     wm.set(this,userId);
//   }
//   get id(){
//     console.log('-----:');
//     return wm.get(this)
//   }
// }
// const user = new User(123);
// console.log(user.id);
// const userInstanceProxy = new Proxy(user,{});
// console.log(userInstanceProxy.id);
// -----:
// 123
// -----:
// undefined
